<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"/>
        <link rel="shortcut icon" type="image/png" href="../img/favicon.png">
        <title></title>

        

<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
<link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
<link href="//fonts.googleapis.com/css?family=Lato:400,700" rel="stylesheet">
<link rel="stylesheet" href="../css/main.css">
        <link rel="stylesheet" href="../css/jsplumb-doc.css">

    </head>
    <body>
        <div class="navbar navbar-top navbar-fixed-top" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>

            <a class="navbar-brand" href="/"><img src="../../img/logo-medium-jsplumb.png"></a>
            <div class="community"></div>

        </div>

        <div class="navbar-collapse collapse nav-wrapper">
            <ul class="nav navbar-nav">
                <li><a href="../">DEMOS</a></li>
                <li><a href="../doc/home.html">DOCS</a></li>
                <li><a href="../apidocs/index.html">API</a></li>
                <li><a href="../download">DOWNLOAD</a></li>
                <li><a href="http://beta.jsplumbtoolkit.com/contact.html">CONTACT</a></li>
                <li><a href="https://blog.jsplumbtoolkit.com">BLOG</a></li>

            </ul>

            <div class="social-nav hidden-xs">
                <a href="http://twitter.com/jsplumblib" class="link"><span class="icon-twitter"></span></a>
                <a href="http://github.com/sporritt/jsplumb/" class="link"><span class="icon-github"></span></a>
                <a href="http://www.linkedin.com/company/jsplumb" class="link"><span class="icon-linkedin"></span></a>

            </div>
        </div><!--/.nav-collapse -->
    </div>
</div>

        <div class="container padding-top">
            <div class="row" id="docs">
                <div class="docs-nav col-xs-3" tabindex="0">
                    <ul>
<li><a href="changelog.html">Changelog</a></li>
<li>Required imports and basic setup<ul>
<li><a href="home.html#browser">Browser Compatibility</a></li>
<li><a href="home.html#setup">Setup</a></li>
<li><a href="home.html#doctype">Doctype</a></li>
<li><a href="home.html#imports">Required Imports</a></li>
<li><a href="home.html#initializing">Initializing jsPlumb</a></li>
<li><a href="home.html#multiple">Multiple jsPlumb Instances</a></li>
<li><a href="home.html#zindex">Z-Index Considerations</a></li>
<li><a href="home.html#container">Where does jsPlumb add elements?</a></li>
<li><a href="home.html#dragging">Element Dragging</a></li>
<li><a href="home.html#performance">Performance</a></li>
<li><a href="zooming.html">Zooming</a></li>
</ul>
</li>
<li><a href="defaults.html">Configuring Defaults</a></li>
<li><a href="basic-concepts.html">Basic Concepts</a><ul>
<li><a href="anchors.html">Anchors</a></li>
<li><a href="connectors.html">Connectors</a></li>
<li><a href="endpoints.html">Endpoints</a></li>
<li><a href="overlays.html">Overlays</a></li>
</ul>
</li>
<li><a href="connections.html">Establishing Connections</a><ul>
<li><a href="connections.html#programmatic">Programmatic Connections</a></li>
<li><a href="connections.html#common">Reusing Common Settings</a></li>
<li><a href="connections.html#detaching">Detaching Programmatic Connections</a></li>
<li><a href="connections.html#draganddrop">Drag and Drop Connections</a></li>
<li><a href="connections.html#sourcesandtargets">Elements as sources &amp; targets</a></li>
<li><a href="connections.html#maketarget">Element Targets</a></li>
<li><a href="connections.html#makesource">Element Sources</a></li>
<li><a href="connections.html#sourcefilter">Specifying drag source area</a></li>
</ul>
</li>
<li><a href="removing.html">Removing Connections/Endpoints</a></li>
<li><a href="parameters.html">Connection &amp; Endpoint Parameters</a></li>
<li><a href="types.html">Connection &amp; Endpoint Types</a></li>
<li><a href="events.html">Events</a><ul>
<li><a href="interceptors.html">Interceptors</a></li>
</ul>
</li>
<li>Appearance<ul>
<li><a href="paint-styles.html">Styling via Paint Styles</a></li>
<li><a href="styling-via-css.html">Styling via CSS</a></li>
</ul>
</li>
<li><a href="querying.html">Querying jsPlumb</a></li>
<li><a href="animation.html">Animation</a></li>
<li><a href="utilities.html">Utility Functions</a></li>
<li><a href="loader-support.html">Loader Support (RequireJS)</a></li>
<li>Examples<ul>
<li><a href="connect-examples.html">jsPlumb.connect</a></li>
<li><a href="draggable-connections-examples.html">Draggable Connections</a></li>
<li><a href="miscellaneous-examples.html">Miscellaneous</a></li>
</ul>
</li>
<li>Development<ul>
<li><a href="development.html">Which files are which?</a></li>
<li><a href="Build.html">Building jsPlumb</a></li>
<li><a href="development-documentation.html">Documentation while developing</a></li>
</ul>
</li>
</ul>
                </div>
                <div class="markdown-body col-xs-9">
                    <h2>Endpoints</h2>

<p>An <code>Endpoint</code> models the appearance and behaviour of one end of a <code>Connection</code>; it delegates its location to an underlying <code>Anchor</code>. </p>

<p>jsPlumb comes with four Endpoint implementations - <code>Dot</code>, <code>Rectangle</code>, <code>Blank</code> and <code>Image</code>. You optionally specify Endpoint properties using the <code>endpoint</code> parameter in a call to <strong>jsPlumb.connect</strong>, <strong>jsPlumb.addEndpoint</strong>, <strong>jsPlumb.makeSource</strong> or <strong>jsPlumb.makeTarget</strong>.</p>

<p>As with Connectors and Overlays, you specify Endpoints using the syntax described the page on <a href="basic-concepts#definitions">basic concepts</a>.</p>

<h3>Creating an Endpoint</h3>

<p>Endpoints are created in a number of different ways:</p>

<ul>
<li>when you call <code>jsPlumb.connect(..)</code> and pass an element id or DOM element as source/target, a new Endpoint is created and assigned.</li>
<li>when you call <code>jsPlumb.addEndpoint(...)</code> a new Endpoint is created (and returned from the call)</li>
<li>when you have configured an element using <code>jsPlumb.makeSource(...)</code> and subsequently drag a connection from that element, a new Endpoint is created and assigned.</li>
</ul>

<p>In each of these different cases, the parameters you can use to specify the Endpoint you wish to have created are exactly the same.</p>

<h3>Specifying Endpoint parameters</h3>

<h3>Endpoint types</h3>

<ul>
<li><p><strong>Dot</strong> This Endpoint draws a dot on the screen. It supports three constructor parameters:                                         </p>

<ul>
<li><code>radius</code> - Optional; defaults to 10 pixels. Defines the radius of the dot.<br></li>
<li><code>cssClass</code> - Optional.  A CSS class to attach to the element the Endpoint creates.<br></li>
<li><code>hoverClass</code> - Optional.  A CSS class to attach to the element the Endpoint creates whenever the mouse is hovering over the element or an attached Connection.<br></li>
</ul></li>
<li><p><strong>Rectangle</strong> Draws a rectangle. Supported constructor parameters are:</p>

<ul>
<li><code>width</code> Optional; defaults to 20 pixels. Defines the width of the rectangle.</li>
<li><code>height</code> Optional; defaults to 20 pixels. Defines the height of the rectangle.</li>
<li><code>cssClass</code> Optional.  A CSS class to attach to the element the Endpoint creates.</li>
<li><code>hoverClass</code> Optional.  A CSS class to attach to the element the Endpoint creates whenever the mouse is hovering over the element or an attached Connection.</li>
</ul></li>
<li><p><strong>Image</strong> Draws an image from a given URL.  This Endpoint supports three constructor parameters:</p>

<ul>
<li><code>src</code> Required.  Specifies the URL of the image to use</li>
<li><code>cssClass</code> Optional.  A CSS class to attach to the element the Endpoint creates.</li>
<li><code>hoverClass</code> Optional.  A CSS class to attach to the element the Endpoint creates whenever the mouse is hovering over the element or an attached Connection.</li>
</ul></li>
<li><p><strong>Blank</strong> Does not draw anything visible to the user.  This Endpoint is probably not what you want if you need your users to be able to drag existing Connections - for that, use a Rectangle or Dot Endpoint and assign to it a CSS class that causes it to be transparent.</p></li>
</ul>

                </div>
            </div>
        </div>

        <script>
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

    ga('create', 'UA-49979015-1', 'auto');
    ga('send', 'pageview');

</script>


    </body>
</html>
